package com.itzhoun.exception.handler;

import lombok.extern.slf4j.Slf4j;

/**
 * @author 周楠
 * @Date 2022/06/28/下午 4:42
 */
@Slf4j
public class DynamicDataSourceContextHolder {

    /**
     * 使用ThreadLocal维护变量，ThreadLocal为每个使用该变量的线程提供一个独立的副本，
     * 所以每个线程都有自己独立的副本，并不会影响其他的线程的副本值。
     */
    private static final ThreadLocal<String> threadLocal = new ThreadLocal<>();

    /**
     * 设置数据源变量
     * @param dsType
     */
    public static void setDataSourceType(String dsType) {
        log.info("切换到{}数据源:" + dsType);
        threadLocal.set(dsType);
    }

    /**
     * 获取数据源变量
     * @return
     */
    public static String getDataSourceType() {
        return threadLocal.get();
    }

    /**
     * 清除数据源
     */
    public static void clearDataSourceType() {
        threadLocal.remove();
    }





}
